Parametrized tests1 - #4
Closed
EuphoricThinking wants to merge 1753 commits into
Closed
Conversation
Resolve the names of CRITICAL constructs even if they are reserved names. This also limits locator parsing to known reserved names. Fixes llvm#205855
…eduction costs (llvm#206124) Fixes failure to fold to v16i32 reduction on ax512 targets We still need to determine better CostKind values - but that can wait until llvm#194621 is complete
…#206108) TLS 1.3 is only supported on Windows Server 2022 and beyond. Windows Server 2019 only supports up to TLS 1.2. This causes test failures on CI runners which run on Windows Server 2019. This patch allows falling back to TLS 1.2 if 1.3 is not available.
…m#205864) Prepares for `AF_UNIX` domain-socket support on Windows by separating the cross-platform socket logic from the one platform-specific operation. Every domain-socket operation is identical on POSIX and Windows (via `<afunix.h>`), so it now lives in a single base class `DomainSocket`. The one operation that is different is `CreatePair()`. It lives in `DomainSocketPosix` / `DomainSocketWindows`. It's selected for the host as `DomainSocketPlatform` through `lldb/Host/DomainSocket.h`. This is an NFC patch: POSIX behavior is unchanged, and while the shared code now also compiles on Windows it stays unreachable there. A follow-up commit enables it. rdar://180736036
…lvm#206129) Host::OpenURL was only defined for Darwin (in Host.mm). Add a portable implementation in the common Host.cpp: on Unix it launches xdg-open; on Windows it returns "unsupported" for now. xdg-open is run without a shell (run_in_shell=false) so query-string metacharacters in the URL are never interpreted by the shell. Also add Host::URLEncode, an RFC 3986 percent-encoder for assembling tracker URLs. These are the building blocks for an upcoming "diagnostics report" command that opens a pre-filled bug URL, and the encoder is shared with a downstream tap-to-radar reporter.
The Diagnostics framework had a callback registry (AddCallback / RemoveCallback) so subsystems could contribute files to a diagnostics directory, intended to also run during crash handling. That crash-time path never materialized, and the sole registered callback was the Debugger copying its file-backed logs. If you had no logging enabled, the directory would be empty, confusing the users. Remove the registry and the callback loop in Diagnostics::Create (which now just writes the in-memory log), and expose the log copying as Debugger::CopyLogFilesToDirectory, which "diagnostics dump" calls directly. The dump command now copies the invoking debugger's logs rather than every debugger's, which is the more useful behavior I want to double down on.
This fixes a problem with CIR failing to handle boolean result types for the __builtin_(add|sub|mul)_overflow functions. We were trying to lower to operations derived from CIR_BinOpOverflow, but these operations required an integer type for the return value. This change relaxes that requirement to allow integer or boolean types. related non-CIR PR llvm#192568.
…#205937) The majority of the content of rdar://179151476 duplicates the PointerFlow analysis after llvm#203633. Therefore, we only need to upstream the tests for better test coverage and proving the duplication. rdar://179151476
Replace assertions that listed concrete types with generic ones that check that the type is a vector with an even number of elements. Update splitUnary and splitBinary. I already updated splitBinary and splitTernary in llvm#203472, but splitBinary change was accidentally removed in llvm#203607, so I am bringing it back in.
When recipes are generated per type and not per variable, we can end up with the same location for multiple private/firstprivate/reduction variables. When materializing the recipes, set the Location of all Operations within the recipe region to be that of the op that is being materialized. It is okay to mutate the original recipes since the location is already not "useful" and the recipes will always get removed at the end of the pass.
…lvm#205531) This continues the effort to split `<__config>` into self-contained detail headers.
Fixes llvm#201756 AI Usage: Used to Search codebase to find location of code to modify and understand existing implementation. --------- Co-authored-by: Simon Pilgrim <git@redking.me.uk> Co-authored-by: Simon Pilgrim <llvm-dev@redking.me.uk>
Summary: In the case of, say, a GPU sanitizer, there could be a pending report that isn't flushed before the queue dies and the program terminates. Add an explicit flush to ensure that all work at least posted *before* the trap fired is cleared in the HSA error callback before actually quitting.
Fixes llvm#205571 --------- Co-authored-by: Barry Revzin <brevzin@jumptrading.com> Co-authored-by: Björn Schäpers <bjoern@hazardy.de>
After llvm#205632, the only clients of the compiler invocation's `visitPaths()` APIs call it on the cow variant. This PR moves the implementation from the base class into the cow, allowing specialized copy-on-write behavior for mutating visitation. If the callback requests a path to be mutated, exclusive ownership of the containing `*Options` instance is established and the string gets modified. This should be performance win for dependency scans using prefix mapping, although admittedly I haven't benchmarked.
…on (llvm#190568) Large stack allocations can skip over guard pages, causing stack clash vulnerabilities. The probe-stack=inline-asm function attribute tells LLVM to emit inline probing code that touches each page during stack allocation, ensuring guard pages are hit. `framelimit` provides hardware bounds checking, but only on the allocframe instruction itself. SP decrements via A2_addi -- used for frames >= 16k bytes and all no-FP prologues bypass it. Software probing closes that gap. When the attribute is present and the frame size exceeds the probe size, the prologue now emits a PS_probed_stackalloc pseudo that inlineStackProbe() expands into a compare-and-branch loop: r29 = add(r29, #-ProbeSize) memw(r29+#0) = #0 p0 = cmp.gtu(r29, r28) if (p0) jump LoopMBB r29 = r28 Both the frame-pointer and no-frame-pointer prologue paths are handled. The stack-probe-size attribute is respected for custom probe sizes.
Re-exposes LLVM-libc's `__subtf3` as `shared::subtf3` for reuse by compiler-rt's builtins. Stacked change - merge these first: - llvm#200094 Part of llvm#197824 --------- Co-authored-by: Muhammad Bassiouni <60100307+bassiounix@users.noreply.github.com>
llvm#204466) …t firstprivate In e57ebfd the flag enableDelayedPrivatizationStaging was removed, enabling Delayed Privatization for firstprivate on OpenMP target regions, this resulted in regressions for implicit firstprivate tests: This commit readds enableDelayedPrivatizationStaging flag for the implicit case and also guards the explicit change via `enableDelayedPrivatization` instead of enableDelayedPrivatizationStaging.
Re-exposes LLVM-libc's `__multf3` as `shared::multf3` for reuse by compiler-rt's builtins. Stacked change - merge these first: - llvm#200094 - llvm#205669 Part of llvm#197824 --------- Co-authored-by: Muhammad Bassiouni <60100307+bassiounix@users.noreply.github.com>
Nothing in the Utility or Host layers uses Diagnostics. Its only callers are Debugger (the always-on log feeder), SBDebugger, and the SystemInitializerCommon lifecycle. Those all live in Core or above. The header depends only on Utility primitives (FileSpec, Log, Error), and lldbInitialization already links lldbCore, so the move adds no new link dependency anywhere. Relocating it to Core lets Diagnostics reach Debugger, Target, CommandInterpreter, and Host, which simplifies an upcoming change that collect a richer diagnostics bundle (statistics, command snapshots, invocation, etc) and allows us to implement that directly in the Diagnostics class.
…198902) Introduce two new passes for the Hexagon HVX floating-point pipeline, targeting v79+ where QFloat (qf16/qf32) is the native HVX FP format. HexagonXQFloatGenerator lowers IEEE-754 HVX floating-point sequences (sf/hf) to native QFloat (qf16/qf32) operations. QFloat instructions are faster and more power-efficient than their IEEE counterparts, with optional accuracy trade-offs. The pass exposes four modes: * Strict IEEE-754 compliant * IEEE-754 compliant (extended dynamic range and subnormal precision, no IEEE-754 overflow handling) * Lossy subnormals * Legacy HexagonPostRAHandleQFP runs after register allocation and corrects the spill/refill paths. QFloat operands carry four extra precision bits that are silently dropped if the value passes through a spill slot or a non-HVX instruction. The pass uses the Register DataFlow Graph (RDF) to walk use-def chains in non-SSA form, inserts qf->IEEE conversions before spills and non-HVX uses, and rewrites saturating instruction opcodes that can absorb IEEE operands directly. Co-authored-by: Sumanth Gundapaneni <sgundapa@qti.qualcomm.com> Co-authored-by: Santanu Das <santdas@qti.qualcomm.com>
Using the new InlineBehavior field of SubtargetFeature, ensure that RISC-V's tuning related features do not prevent inlining. Architecture features still prevent inlining.
…omparisons (llvm#204679) Instantiating std::tuple<T...> in C++23 and later would require computing tuple_size_v of the tuple type itself, because the hidden-friend operator<=> and analogous comparison operators query it for its return type. That can lead to a hard error if instantiating tuple_size requires the type to be complete. This patch resolves that problem by refactoring the metaprogramming around these comparison operators. As a side effect, this should also be slightly more efficient at compile-time because we don't cause the instantiation of tuple_element for the current tuple. rdar://179086119
This won't impact them working on optnone functions, but could impact whether or not they get called in opt-bisect, which would be wrong.
`MAX_PATH` is defined as `260`. `PosixApi.h` already defines `PATH_MAX` as `32,768` characters which is the max path limit for Unicode paths on Windows. Use this in lldb on Windows to avoid path truncation.
Re-exposes LLVM-libc's `__divtf3` as `shared::divtf3` for reuse by compiler-rt's builtins. Stacked change - merge these first: - llvm#200094 - llvm#205669 - llvm#205670 Part of llvm#197824
… Going to make fixtures helper fixtures helper properties parameterized in order to be able to use a helper functions in different tests also in memory not only in the device
…reating a generalized helper header with properties
…ze printer function
…o properties for consistency and in order enable size comparison
EuphoricThinking
force-pushed
the
parametrized_tests1
branch
from
June 30, 2026 10:17
ac3dd3d to
95049ca
Compare
EuphoricThinking
pushed a commit
that referenced
this pull request
Jun 30, 2026
Implement the software ShadowCallStack for Hexagon.
On Hexagon, r19 is used as the shadow stack pointer (reserved via
-ffixed-r19). On function entry the LR (r31) is saved to the shadow
stack and the pointer is advanced; on exit the LR is restored from the
shadow stack before returning.
Prologue sequence:
r19 = add(r19, #4)
memw(r19+#-4) = r31
Epilogue sequence (between deallocframe/jumpr r31):
r31 = memw(r19+#-4)
r19 = add(r19, #-4)
SCS is only emitted when hasFP() is true: the function uses allocframe.
Leaf functions that never touch the stack do not need protection.
When SCS is active the combined L4_return (deallocframe+jump) is not
used; instead L2_deallocframe and PS_jmpret are kept separate so the
shadow-stack restore can be inserted between them.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.